/**
 * 抓取网站时，您可能会遇到您想要抓取的不同类型的链接。为了方便对此类链接的抓取，我们enqueueLinks()在爬虫上下文中提供了方法，该方法会自动查找链接并将其添加到爬虫的RequestQueue.
 * 我们提供了3种不同的抓取相对链接的策略：
 * * 全部（或字符串“全部”）这会将找到的所有链接排入队列，无论它们指向哪个域。
 * * 相同主机名（或字符串“相同主机名”）这会将同一主机名找到的所有链接排入队列。这是默认策略。
 * * 同域（或字符串“同域”）这会将找到的具有相同域名的所有链接排入队列，包括来自任何可能的子域的链接。
 */
import { CheerioCrawler, EnqueueStrategy } from 'crawlee';

const crawler = new CheerioCrawler({
    maxRequestsPerCrawl: 10, // 仅限 10 个请求（如果要抓取所有链接请勿使用）
    async requestHandler({ request, enqueueLinks, log }) {
        log.info(request.url);
        await enqueueLinks({
            // 将策略设置为“全部”会将找到的所有链接排入队列：EnqueueStrategy.All | EnqueueStrategy.SameHostname | EnqueueStrategy.SameDomain
            strategy: EnqueueStrategy.All,
            // 或者，您可以传入字符串：'all' | 'same-hostname' | 'same-domain'
            // strategy: 'all',
        });
    },
});

// 使用初始请求运行爬虫
await crawler.run(['https://crawlee.dev']);
